﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using Model;

namespace HRP.Private.Agenda
{
    public partial class Criar : System.Web.UI.Page
    {
        public string idField;

        private int FuncionarioId
        {
            get
            {
                if (ViewState["EventoFuncionarioId"] == null)
                {
                    int funcId = 0;
                    Int32.TryParse(Request.QueryString["funcId"], out funcId);
                    ViewState["EventoFuncionarioId"] = funcId;
                }
                return (int)ViewState["EventoFuncionarioId"];
            }            
        }


        protected void Page_Load(object sender, EventArgs e)
        {
            idField = "\n$(\"#" + dataInicioTB.ClientID + "\"" + @").datepicker({ 
                                    dateFormat: 'yy-mm-dd',
                                    monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
                                    dayNamesMin: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
                                    dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']});";
            idField += "\n$(\"#" + dataFimTB.ClientID + "\"" + @").datepicker({ 
                                    dateFormat: 'yy-mm-dd', 
                                    monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
                                    dayNamesMin: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
                                    dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']});";

            formPanel.Visible = true;
            msgPanel.Visible = false;

            Label1.Visible = false;

            if (!Page.IsPostBack)
            {
                carregarEventos();
            }
        }
        void carregarEventos()
        {            
            eventoDL.DataSource = FuncionarioId==0 ? Evento_BLL.Instance.ObterTiposEventosGerais() : Evento_BLL.Instance.ObterTiposEventos();
            eventoDL.DataBind();
            if ((hrp_empresas)Session["EmpresaActual"] != null)
            {
                hrp_empresas empresaActual = (hrp_empresas)Session["EmpresaActual"];
                hrp_funcionario funcionario = Funcionario_BLL.Instance.ObterFuncionarioPorId(empresaActual.id_cliente, empresaActual.id, FuncionarioId);
                if (funcionario != null)
                    funcionarioLabel.Text = funcionario.nome;
            }

        }

        protected void criarEventoBT_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
            {
                return;
            }
            else {
                DateTime dataI = Convert.ToDateTime(dataInicioTB.Text + "T" + horaInitDL.SelectedValue.Trim() + ":00.000000");
                DateTime dataF = Convert.ToDateTime(dataFimTB.Text + "T" + horaFimDL.SelectedValue.Trim() + ":00.000000");
                hrp_empresas empresaActual = (hrp_empresas)Session["EmpresaActual"];
                if (dataI > dataF)
                {
                    Label1.Text = "A Data de inicio do evento, é superior á data de fim do evento.";
                    Label1.Visible = true;
                    return;
                }
                else
                {

                    int idEmpresa = empresaActual.id;
                    int eventoId = 0;

                    Int32.TryParse(eventoDL.SelectedItem.Value, out eventoId);

                    Evento_BLL.Instance.AdicionarNovoEvento(assuntoTB.Text, dataI,
                       dataF, eventoId, Session["userid"].ToString(), DateTime.Now,
                        Request.UserHostAddress, false, Convert.ToInt32(Session["idclient"]), idEmpresa, FuncionarioId, observacaoTB.Text);
                    formPanel.Visible = false;
                    msgPanel.Visible = true;
                }
            }

        }

    

  

    }
}